Handheld devices are ubiquitous in the modern world due, in part, to their small size, mobility and functionality. Some of the functions performed by many handheld devices include supporting: digital still camera (“DSC”) tasks, camcorder tasks, multimedia streaming reproduction tasks, video gaming tasks, etc. Consequently, handheld devices are known to incorporate several components including, but not limited to, a baseband processor/application processor (e.g., a CPU) and a multimedia accelerator comprising one or more processing elements (e.g., processors and/or accelerators). As one having ordinary skill in the art will recognize, at any given time, the CPU and/or one or more processing elements may be active when performing a desired function (e.g., displaying streaming video). In the related desktop or laptop computer environment, it is similarly known to partition various aspects of a particular task among a variety of functional blocks or processors. For instance, when performing basic MPEG-2 decoding, it is common to parse the received MPEG-2 stream while a graphics processing unit is contemporaneously performing motion compensation and inverse discrete cosine transfer (iDCT) subtasks.
The mobility of the handheld device is made possible through the use of one or more battery sources. Battery sources may be rechargeable or capable of only a single use. To maximize the time between each charge or between replacement of single use batteries (collectively, “time between charges”), handheld devices are built using power efficient components to reduce net power consumption.
One prior art solution that attempted to lengthen the time between each charge relied on the use of highly optimized processors designed to perform one or more specific tasks or portions of tasks. However, by incorporating highly optimized processors, designers limited the handheld device's ability to efficiently distribute a given task among multiple processors (e.g., load balancing). Other prior art solutions added power conservation mechanisms designed to put one or more components of the handheld device into a “low power mode” based on user input (e.g., when a user manually selects a low-power mode) or through an automatic feature (e.g., when the battery capacity falls below a certain threshold). These mechanisms typically shut down one or more components in the device, shut down one or more functional blocks of components in the device, lower the voltage supplying the device and its components (e.g., powering off one or more voltage islands), slow clock frequencies, or any combination thereof.
The above-mentioned solutions do not, however, fully consider the flexibility and ability of processing elements to process different types of tasks and portions thereof. Nor do the above-mentioned solutions consider power source or battery behavior to more selectively support tasks commonly performed on computer systems or handheld devices. Accordingly, a need exists for performing tasks on a computer system in a more efficient manner thereby reducing net power consumption. A further need exists to more efficiently execute tasks on a battery-powered computer system such that the operating time on a single battery charge is maximized.